#include <stdio.h>

int add(int a,int b)
{
    return a+b;
}

int sub(int a,int b)
{
    return a-b;
}

int mul(int a,int b)
{
    return a*b;
}

int div(int a,int b)
{
    return a/b;
}


int main(int argc, char const *argv[])
{
    int x=10,y=20;
    int(*pfunc)(int,int);      //pfunc 是一个指针，一个函数类型的指针

/****加法运算****/
    pfunc = add;           //可以把一个函数名（函数名是函数的入口地址），赋值给小姑娘类型的指针变量
    int ret = pfunc(x,y);
    printf("ret = %d\n",ret);
    
/****减法运算****/
    pfunc = sub;           //可以把一个函数名（函数名是函数的入口地址），赋值给小姑娘类型的指针变量
    ret = pfunc(x,y);
    printf("ret = %d\n",ret);

/****乘法运算****/
    pfunc = mul;           //可以把一个函数名（函数名是函数的入口地址），赋值给小姑娘类型的指针变量
    ret = pfunc(x,y);
    printf("ret = %d\n",ret);

/****除法运算****/
    pfunc = div;           //可以把一个函数名（函数名是函数的入口地址），赋值给小姑娘类型的指针变量
    ret = pfunc(x,y);
    printf("ret = %d\n",ret);

    return 0;
}
